package com.legsem.legstar.cci;

import javax.resource.cci.InteractionSpec;

import com.legstar.host.invoke.model.HostProgram;

/**
 * An interaction is specified by providing transformers for both input and
 * output structures as well as properties for the target program.
 * <p/>
 * This does not specify input and output structures which will be described by
 * specialized specs.
 * 
 * 
 */
public interface LegStarInteractionSpec extends InteractionSpec {

    /**
     * Get the host program name.
     * 
     * @return the name of the host program to run
     */
    public HostProgram getHostProgram();

    /**
     * Set the host program name.
     * 
     * @param hostProgram the name of the host program to run
     */
    public void setHostProgram(HostProgram hostProgram);

    /**
     * Get the host character set
     * 
     * @return the host character set
     */
    public String getHostCharset();

    /**
     * Set the host character set
     * 
     * @param hostCharset the host character set
     */
    public void setHostCharset(String hostCharset);

    /**
     * Get this interaction identifier (used for auditing)
     * 
     * @return the interaction identifier
     */
    public String getInteractionId();

    /**
     * Set this interaction identifier (used for auditing)
     * 
     * @param interactionId the interaction identifier
     */
    public void setInteractionId(String interactionId);
}
